home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / dev / c / restracklib_0_2.lha / ResTrackLib / allocentry.c < prev    next >
C/C++ Source or Header  |  1994-07-31  |  2KB  |  94 lines

  1. /* allocentry.c */
  2.  
  3. #include <stdio.h>
  4. #include <exec/memory.h>
  5. #include <clib/exec_protos.h>
  6. #ifdef REGARGS
  7. #   include <pragmas/exec_pragmas.h>
  8. #endif
  9.  
  10. #include "restrack_intern.h"
  11.  
  12.  
  13. /*****************************************************************************
  14.  
  15.     NAME
  16.     __rtl_AllocEntry -- allocate memory
  17.  
  18.     SYNOPSIS
  19.     struct MemList * __rtl_AllocEntry( struct MemList *entry
  20.                         const char * file, int line )
  21.  
  22.     FUNCTION
  23.     Stub for AllocEntry().
  24.  
  25.     HISTORY
  26.     28. Jul 1994    Optimizer   created
  27.  
  28. ******************************************************************************/
  29.  
  30. #define ALLOCERROR    (0x80000000L)
  31.  
  32. struct MemList * __rtl_AllocEntry( struct MemList *entry,
  33.                 const char * file, int line )
  34. {
  35.     struct MemList * mem;
  36.  
  37.     mem = AllocEntry (entry);
  38.  
  39.     if (!((ULONG)mem & ALLOCERROR) )
  40.     CHECK_ADD_RN(RTL_EXEC,RTLRT_AllocEntry,mem,0)
  41.  
  42.     return (mem);
  43. } /* __rtl_AllocEntry */
  44.  
  45.  
  46. /*****************************************************************************
  47.  
  48.     NAME
  49.     __rtl_FreeEntry
  50.  
  51.     SYNOPSIS
  52.     void __rtl_FreeEntry( struct MemList *entry, const char * file, int line );
  53.  
  54.     FUNCTION
  55.     Stub for FreeMem(). Frees a block of memory allocated by
  56.     __rlt_AllocMem().
  57.  
  58.     HISTORY
  59.     28. Jul 1994    Optimizer   created
  60.  
  61. ******************************************************************************/
  62.  
  63. void __rtl_FreeEntry( struct MemList *entry, const char * file, int line )
  64. {
  65.     ResourceNode * node;
  66.  
  67.     if ((node = FindResourceNode1 (entry)) )
  68.     {
  69.     if (node->Resource != RTLRT_AllocEntry)
  70.     {
  71.         fprintf (stderr, "ERROR: FreeEntry() at %s:%d called for\n",
  72.             file, line);
  73.         PrintResourceNode (node);
  74.     }
  75.     else
  76.     {
  77.         FreeEntry (entry);
  78.         RemoveResourceNode (node);
  79.     }
  80.     }
  81.     else
  82.     CHECK_RT_ERROR_OR_CALL(RTL_EXEC,FreeEntry,"(%p)",entry,FreeEntry (entry))
  83.  
  84. } /* __rlt_FreeEntry */
  85.  
  86.  
  87. NRT_RET(struct MemList *,AllocEntry,(struct MemList * list),(list))
  88. NRT(FreeEntry,(struct MemList * list),(list))
  89.  
  90.  
  91. /******************************************************************************
  92. *****  ENDE allocentry.c
  93. ******************************************************************************/
  94.